package com.ashin.bean;

import java.util.Collection;

/***
 * 分页bean
 * 
 * @author Ashin
 *
 */
public class Page {

    // 当前页号
    private Integer pageNo;
    // 每页记录条数
    private Integer pageSize;
    // 总共有多少条记录
    private Long totalRecNum;
    // 该页的数据(记录明细)
    private Collection<?> pageContent;

    public Page() {
        super();
        pageNo = 1;
        pageSize = 20;
    }

    public Integer getPageNo() {
        if (pageNo < 1) {
            return 1;
        }

        return pageNo > getTotalPageNum() ? getTotalPageNum() : pageNo;
    }

    public void setPageNo(Integer pageNo) {
        this.pageNo = pageNo;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public Boolean getNextPage() {
        return pageNo < getTotalPageNum();
    }

    public Boolean getPrePage() {
        return pageNo > 1;
    }

    public Long getTotalRecNum() {
        return totalRecNum;
    }

    public void setTotalRecNum(Long totalRecNum) {
        this.totalRecNum = totalRecNum;
    }

    public Integer getTotalPageNum() {
        return totalRecNum % pageSize > 0 ? (int) (totalRecNum / pageSize + 1) : (int) (totalRecNum / pageSize);
    }

    public Collection<?> getPageContent() {
        return pageContent;
    }

    public void setPageContent(Collection<?> pageContent) {
        this.pageContent = pageContent;
    }

    public int getStartIndex() {
        return pageSize * (pageNo - 1); // size:10 pageno:3 20
    }

    public int getEndIndex() {
        return (pageSize * pageNo > this.totalRecNum) ? (int) (this.totalRecNum.longValue()) : (pageSize * pageNo);
    }

}
